<!DOCTYPE html>
<html>

<head>
  <title>Quarkus - Project Scaffolding and IDE</title>
  <script id="adobe_dtm" src="https://www.redhat.com/dtm.js" type="text/javascript"></script>
  <script src="/assets/javascript/highlight.pack.js" type="text/javascript"></script>
  <META HTTP-EQUIV='Content-Security-Policy' CONTENT="default-src 'none'; script-src 'self' 'unsafe-eval' 'sha256-ANpuoVzuSex6VhqpYgsG25OHWVA1I+F6aGU04LoI+5s=' 'sha256-ipy9P/3rZZW06mTLAR0EnXvxSNcnfSDPLDuh3kzbB1w=' js.bizographics.com https://www.redhat.com assets.adobedtm.com jsonip.com https://ajax.googleapis.com https://www.googletagmanager.com https://www.google-analytics.com https://use.fontawesome.com; style-src 'self' https://fonts.googleapis.com https://use.fontawesome.com; img-src 'self' *; media-src 'self' ; frame-src https://www.googletagmanager.com https://www.youtube.com; frame-ancestors 'none'; base-uri 'none'; object-src 'none'; form-action 'none'; font-src 'self' https://use.fontawesome.com https://fonts.gstatic.com;">
  <META HTTP-EQUIV='X-Frame-Options' CONTENT="DENY">
  <META HTTP-EQUIV='X-XSS-Protection' CONTENT="1; mode=block">
  <META HTTP-EQUIV='X-Content-Type-Options' CONTENT="nosniff">
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Quarkus: Supersonic Subatomic Java">
  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:site" content="@QuarkusIO"> 
  <meta name="twitter:creator" content="@QuarkusIO">
  <meta property="og:url" content="https://quarkus.io/guides/ide-configuration" />
  <meta property="og:title" content="Quarkus - Project Scaffolding and IDE" />
  <meta property="og:description" content="Quarkus: Supersonic Subatomic Java" />
  <meta property="og:image" content="/assets/images/quarkus_card.png" />
  <link rel="canonical" href="https://quarkus.io/guides/ide-configuration">
  <link rel="shortcut icon" type="image/png" href="/favicon.ico" >
  <link rel="stylesheet" href="https://quarkus.io/guides/stylesheet/config.css" />
  <link rel="stylesheet" href="/assets/css/main.css" />
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
  <link rel="alternate" type="application/rss+xml"  href="https://quarkus.io/feed.xml" title="Quarkus">
  <script src="https://quarkus.io/assets/javascript/goan.js" type="text/javascript"></script>
  <script src="https://quarkus.io/assets/javascript/hl.js" type="text/javascript"></script>
</head>

<body class="guides">
  <!-- Google Tag Manager (noscript) -->
  <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NJWS5L"
  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  <!-- End Google Tag Manager (noscript) -->

  <div class="nav-wrapper">
  <div class="grid-wrapper">
    <div class="width-12-12">
      <input type="checkbox" id="checkbox" />
      <nav id="main-nav" class="main-nav">
  <div class="container">
    <div class="logo-wrapper">
      
        <a href="/"><img src="/assets/images/quarkus_logo_horizontal_rgb_600px_reverse.png" class="project-logo" title="Quarkus"></a>
      
    </div>
    <label class="nav-toggle" for="checkbox">
      <i class="fa fa-bars"></i>
    </label>
    <div id="menu" class="menu">
      <span>
        <a href="/get-started/" class="">Get Started</a>
      </span>
      <span>
        <a href="/guides/" class="active">Guides</a>
      </span>
      <span>
        <a href="/community/" class="">Community</a>
      </span>
      <span>
        <a href="/support/" class="">Support</a>
      </span>
      <span>
        <a href="/blog/" class="">Blog</a>
      </span>
      <span>
        <a href="https://code.quarkus.io" class="button-cta secondary white">Start Coding</a>
      </span>
    </div>
  </div>
      </nav>
    </div>
  </div>
</div>

  <div class="content">
    <div class="guide">
  <div class="width-12-12">
    <h1 class="text-caps">Quarkus - Project Scaffolding and IDE</h1>
    <div class="hide-mobile toc"><ul class="sectlevel1">
<li><a href="#project-creation">Creating a new project</a></li>
<li><a href="#dealing-with-extensions">Dealing with extensions</a></li>
<li><a href="#development-mode">Development mode</a></li>
<li><a href="#debugging">Debugging</a></li>
<li><a href="#import-in-your-ide">Import in your IDE</a></li>
</ul></div>
    <div>
      <div class="sect1">
<h2 id="project-creation"><a class="anchor" href="#project-creation"></a>Creating a new project</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Remember, you need to configure Maven as indicated in the <a href="maven-config.html">Maven configuration page</a>.
Then, you can scaffold a new project with:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-none hljs">mvn io.quarkus:quarkus-maven-plugin:1.7.0.Final:create \
    -DprojectGroupId=my-groupId \
    -DprojectArtifactId=my-artifactId \
    -DprojectVersion=my-version \
    -DclassName="org.my.group.MyResource"</code></pre>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
If you just launch <code>mvn io.quarkus:quarkus-maven-plugin:1.7.0.Final:create</code> the Maven plugin asks
for user inputs. You can disable (and use default values) this interactive mode by passing <code>-B</code> to the Maven command.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>The following table lists the attributes you can pass to the <code>create</code> command:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Attribute</th>
<th class="tableblock halign-left valign-top">Default Value</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>projectGroupId</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>org.acme.sample</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The group id of the created project</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>projectArtifactId</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>mandatory</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The artifact id of the created project. Not passing it triggers the interactive mode.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>projectVersion</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>1.0-SNAPSHOT</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The version of the created project</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>className</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>Not created if omitted</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The fully qualified name of the generated resource</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>path</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>/hello</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The resource path, only relevant if <code>className</code> is set.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>extensions</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>[]</em></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The list of extensions to add to the project (comma-separated)</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>If you decide to generate a REST resource (using the <code>className</code> attribute), the endpoint is exposed at: <code><a href="http://localhost:8080/$root/$path" class="bare">http://localhost:8080/$root/$path</a></code>.
If you use the default <code>root</code> and <code>path</code>, the URL is: <a href="http://localhost:8080/hello" class="bare">http://localhost:8080/hello</a>.</p>
</div>
<div class="paragraph">
<p>The project is either generated in the current directory or in a directory named after the passed artifactId.
If the current directory is empty, the project is generated in-place.</p>
</div>
<div class="paragraph">
<p>A <code>Dockerfile</code> is also generated in <code>src/main/docker</code>.
Instructions to build the image and run the container are written in the <code>Dockerfile</code>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="dealing-with-extensions"><a class="anchor" href="#dealing-with-extensions"></a>Dealing with extensions</h2>
<div class="sectionbody">
<div class="paragraph">
<p>You can list extensions with: <code>mvn quarkus:list-extensions</code>.
You can enable an extension using:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-none hljs">mvn quarkus:add-extension -Dextensions="validation"</code></pre>
</div>
</div>
<div class="paragraph">
<p>Extensions are passed using a comma-separated list.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="development-mode"><a class="anchor" href="#development-mode"></a>Development mode</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Quarkus comes with a built-in development mode.
Run you application with:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-none hljs">mvn compile quarkus:dev</code></pre>
</div>
</div>
<div class="paragraph">
<p>You can then update the application sources, resources and configurations.
The changes are automatically reflected in your running application.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="debugging"><a class="anchor" href="#debugging"></a>Debugging</h2>
<div class="sectionbody">
<div class="paragraph">
<p>You can run a Quarkus application in debug mode using:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-none hljs">mvn compile quarkus:dev -Ddebug=true</code></pre>
</div>
</div>
<div class="paragraph">
<p>Then, attach your debugger to <code>localhost:5005</code>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="import-in-your-ide"><a class="anchor" href="#import-in-your-ide"></a>Import in your IDE</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Once you have a <a href="#project-creation">project generated</a>, you can import it in your favorite IDE.
The only requirement is the ability to import a Maven project.</p>
</div>
<div class="paragraph">
<p><strong>Eclipse</strong></p>
</div>
<div class="paragraph">
<p>In Eclipse, click on: <code>File &#8594; Import</code>.
In the wizard, select: <code>Maven &#8594; Existing Maven Project</code>.
On the next screen, select the root location of the project.
The next screen list the found modules; select the generated project and click on <code>Finish</code>. Done!</p>
</div>
<div class="paragraph">
<p>In a separated terminal, run <code>mvn compile quarkus:dev</code>, and enjoy a highly productive environment.</p>
</div>
<div class="paragraph">
<p><strong>IntelliJ</strong></p>
</div>
<div class="paragraph">
<p>In IntelliJ:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>From inside IntelliJ select <code>File &#8594; New &#8594; Project From Existing Sources&#8230;&#8203;</code> or, if you are on the welcome dialog, select <code>Import project</code>.</p>
</li>
<li>
<p>Select the project root</p>
</li>
<li>
<p>Select <code>Import project from external model</code> and <code>Maven</code></p>
</li>
<li>
<p>Next a few times (review the different options if needed)</p>
</li>
<li>
<p>On the last screen click on Finish</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>In a separated terminal or in the embedded terminal, run <code>mvn compile quarkus:dev</code>. Enjoy!</p>
</div>
<div class="paragraph">
<p><strong>Apache Netbeans</strong></p>
</div>
<div class="paragraph">
<p>In Netbeans:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Select <code>File &#8594; Open Project</code></p>
</li>
<li>
<p>Select the project root</p>
</li>
<li>
<p>Click on <code>Open Project</code></p>
</li>
</ol>
</div>
<div class="paragraph">
<p>In a separated terminal or the embedded terminal, go to the project root and run <code>mvn compile quarkus:dev</code>. Enjoy!</p>
</div>
<div class="paragraph">
<p><strong>Visual Studio Code</strong></p>
</div>
<div class="paragraph">
<p>Open the project directory in VS Code. If you have installed the Java Extension Pack (grouping a set of Java extensions), the project is loaded as a Maven project.</p>
</div>
</div>
</div>
    </div>
  </div>
</div>

  </div>

  <div class="content project-footer">
  <div class="footer-section">
    <div class="logo-wrapper">
      <a href="/"><img src="/assets/images/quarkus_logo_horizontal_rgb_reverse.svg" class="project-logo" title="Quarkus"></a>
    </div>
  </div>
  <div class="grid-wrapper">
    <p class="grid__item width-3-12">Quarkus is open. All dependencies of this project are available under the <a href='https://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache Software License 2.0</a> or compatible license.<br /><br />This website was built with <a href='https://jekyllrb.com/' target='_blank'>Jekyll</a>, is hosted on <a href='https://pages.github.com/' target='_blank'>Github Pages</a> and is completely open source. If you want to make it better, <a href='https://github.com/quarkusio/quarkusio.github.io' target='_blank'>fork the website</a> and show us what you’ve got.</p>

    
      <div class="width-1-12 project-links">
        <span>Navigation</span>
        <ul class="footer-links width-1-12">
          
            <li><a href="/">Home</a></li>
          
            <li><a href="/guides">Guides</a></li>
          
            <li><a href="/community/#contributing">Contribute</a></li>
          
            <li><a href="/faq">FAQ</a></li>
          
            <li><a href="/get-started">Get Started</a></li>
          
        </ul>
      </div>
    
      <div class="width-1-12 project-links">
        <span>Contribute</span>
        <ul class="footer-links width-1-12">
          
            <li><a href="https://twitter.com/quarkusio">Follow us</a></li>
          
            <li><a href="https://github.com/quarkusio">GitHub</a></li>
          
            <li><a href="/security">Security&nbsp;policy</a></li>
          
        </ul>
      </div>
    
      <div class="width-1-12 project-links">
        <span>Get Help</span>
        <ul class="footer-links width-1-12">
          
            <li><a href="https://groups.google.com/forum/#!forum/quarkus-dev">Forums</a></li>
          
            <li><a href="https://quarkusio.zulipchat.com">Chatroom</a></li>
          
        </ul>
      </div>
    

    
      <div class="width-3-12 more-links">
        <span>Quarkus is made of community projects</span>
        <ul class="footer-links">
          
            <li><a href="https://vertx.io/" target="_blank">Eclipse Vert.x</a></li>
          
            <li><a href="https://microprofile.io" target="_blank">Eclipse MicroProfile</a></li>
          
            <li><a href="https://hibernate.org" target="_blank">Hibernate</a></li>
          
            <li><a href="https://netty.io" target="_blank">Netty</a></li>
          
            <li><a href="https://resteasy.github.io" target="_blank">RESTEasy</a></li>
          
            <li><a href="https://camel.apache.org" target="_blank">Apache Camel</a></li>
          
            <li><a href="https://code.quarkus.io/" target="_blank">And many more...</a></li>
          
        </ul>
      </div>
    
  </div>
</div>
  <div class="content redhat-footer">
  <div class="grid-wrapper">
    <span class="licence">
      <i class="fab fa-creative-commons"></i><i class="fab fa-creative-commons-by"></i> <a href="https://creativecommons.org/licenses/by/3.0/" target="_blank">CC by 3.0</a> | <a href="https://www.redhat.com/en/about/privacy-policy">Privacy Policy</a>
    </span>
    <span class="redhat">
      Sponsored by
    </span>
    <span class="redhat-logo">
      <a href="https://www.redhat.com/" target="_blank"><img src="/assets/images/redhat_reversed.svg"></a>
    </span>
  </div>
</div>


  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js" integrity="sha384-8gBf6Y4YYq7Jx97PIqmTwLPin4hxIzQw5aDmUg/DDhul9fFpbbLcLh3nTIIDJKhx" crossorigin="anonymous"></script>
  <script type="text/javascript" src="/assets/javascript/mobile-nav.js"></script>
  <script type="text/javascript" src="/assets/javascript/scroll-down.js"></script>
  <script src="/assets/javascript/satellite.js" type="text/javascript"></script>
  <script src="https://quarkus.io/guides/javascript/config.js" type="text/javascript"></script>
  <script src="/assets/javascript/search-filter.js" type="text/javascript"></script>
  <script src="/assets/javascript/back-to-top.js" type="text/javascript"></script>
</body>

</html>
